﻿using System.Collections.Generic;
using System.Linq;

namespace EssenceFeed.Core.Helpers
{
    /// <summary>
    /// Paged List
    /// </summary>
    /// <typeparam name="T"></typeparam>
    //public class PagedList<T> : List<T>
    //{
    //    /// <summary>
    //    /// Paged List
    //    /// </summary>
    //    /// <param name="source"></param>
    //    /// <param name="index"></param>
    //    /// <param name="pageSize"></param>
    //    public PagedList(IQueryable<T> source, int index, int pageSize)
    //    {
    //        this.TotalCount = source.Count();
    //        this.PageSize = pageSize;
    //        this.PageIndex = index;
    //        this.AddRange(source.Skip((index - 1) * pageSize).Take(pageSize).ToList());

    //        var pageResult = 0;
    //        for (var counter = 1; pageResult < this.TotalCount; counter++)
    //        {
    //            pageResult = counter * this.PageSize;
    //            this.TotalPages = counter;
    //        }
    //    }

    //    /// <summary>
    //    /// Total Pages
    //    /// </summary>
    //    public int TotalPages
    //    {
    //        get;
    //        set;
    //    }

    //    /// <summary>
    //    /// Total Count
    //    /// </summary>
    //    public int TotalCount
    //    {
    //        get;
    //        set;
    //    }

    //    /// <summary>
    //    /// Page Index
    //    /// </summary>
    //    public int PageIndex
    //    {
    //        get;
    //        set;
    //    }

    //    /// <summary>
    //    /// Page Size
    //    /// </summary>
    //    public int PageSize
    //    {
    //        get;
    //        set;
    //    }

    //    /// <summary>
    //    /// Has Previous Page
    //    /// </summary>
    //    public bool HasPreviousPage
    //    {
    //        get
    //        {
    //            return (PageIndex > 1);
    //        }
    //    }

    //    /// <summary>
    //    /// Has Next Page
    //    /// </summary>
    //    public bool HasNextPage
    //    {
    //        get
    //        {
    //            return (PageIndex * PageSize) <= TotalCount;
    //        }
    //    }
    //}
}